Some organizations expend large amounts of resources obtaining and maintaining wide area networks (“WANs”) between geographically distributed locations. For example, some organizations install and/or maintain expensive underground, over the air, and/or undersea connection media to support communications between the locations. In some instances, large amounts of bandwidth must be available to support operations at the locations and may be expensive to maintain, depending upon the medium chosen to support that bandwidth and/or the distance between the locations. While installing and maintaining these cables can be expensive, the notion of creating and hosting multiple data centers to serve the distributed locations can be even more expensive and therefore can be impractical. To address these and other concerns, some organizations employ incremental updating of files to reduce bandwidth needed between the various locations.
When incrementally updating files, computers can be configured to download data indicating incremental updates to files instead of downloading entire files and/or new versions of the files. While this approach may reduce the amount of data transmitted, the bandwidth consumed by users making incremental updates to various files still can be substantial. In particular, while the data reflecting the incremental changes may consume less data than an entire new version of the updated file, the size of the data reflecting these incremental changes nonetheless can be substantial. For example, an incremental update of a file can include embedding data in the file. The data embedded in the file can include, for example, video data, image data, or the like. Thus, the incremental update for this file may include the video, image, or other data, which can consume large amounts of bandwidth to distribute to users. Similarly, some types of data such as images and video may not be easily divided into incremental pieces and as such, it may be necessary to transmit the entire file corresponding to the images or video when any changes are made.
When a user accesses the server computer to obtain the incremental update, large amounts of data may be transmitted to the user. Furthermore, because data consumed by organizations often is distributed or consumed by multiple users, the incremental update may be distributed to a large number of users. Thus, the amount of bandwidth consumed by users to make the incremental update may still be substantial. For example, each user updating the file in the above scenario may download the video or image data that was embedded in the file and update their version of the file to include the now-embedded data. Such an “incremental” change, when multiplied by a large number of users, can consume large amounts of data and/or bandwidth and therefore can be expensive in terms of bandwidth, transmission time, or the like.
It is with respect to these and other considerations that the disclosure made herein is presented.